地图系统库设置 Sample详情
最后更新时间:2019年6月17日
MapGIS Mobile平台中离线矢量地图显示的样式是依赖于系统库的,有了系统库,才能为地图的显示配置相应的颜色、符号、字体等等,在移动端离线矢量地图才能显示无误,如果没有系统库,地图将呈现为全黑状态。
系统库,在移动端表现为Clib文件夹:包括字体库;Slib文件夹:包括符号库、颜色库。系统库为地图提供字体、符号、颜色资源,决定了地图显示的样式,地图中的要素才能显示成多种多样。在MapGIS桌面平台软件中将矢量地图数据转换为移动端数据时生成的数据包中Clib、Slib两个文件夹即组成了一套系统库。所以可以配置不同的系统库来实现地图的不同配图效果。
移动端离线矢量地图显示时,会优先从此*.mapx地图文档文件的同级目录下读取系统库,如果没有找到,则读取环境初始化目录,如果此处也没有系统库,地图将会呈现黑色。当然,我们可以通过代码动态设置系统库的路径,就会优先从此路径读取。
//系统库路径(Clib、Slib文件夹所在路径) NSString *systemlibPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"/MapGIS Mobile 2D Sample/"]; //初始设置系统库 [MGSEnvironment setSystemLibraryPath:systemlibPath];
通常在地图显示之前设置系统库,如有需要,也可在地图已显示之后再切换,不过要注意的是,此情况切换后要强制刷新,才能将地图显示效果变更。
//地图数据路径 NSString* path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"/MapGIS Mobile 2D Sample/Map/MapShow/WuHan/WuHan.mapx"]; //异步方法加载地图 [_mapView loadFromFileAsync:path]; //地图显示之后切换系统库,需要先停止地图的请求 [_mapView stopCurRequest:^{ //切换系统库 [MGSEnvironment setSystemLibraryPath:_systemlibPath]; //切换后需要强制刷新 [_mapView forceRefresh]; }];